home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
ikap
/
etc2
/
kasi.bas
< prev
next >
Wrap
BASIC Source File
|
2000-06-26
|
5KB
|
173 lines
/* save "kasi.bas"
/* save@"kasi.bas
/************************************
/* Z-MUSICのワークを見る *
/* 歌詞を見ながら聞く *
/************************************
/* *******************************
/* * ファイル名を指定しています *
/* * ここを書き換えて下さい *
/* * ↓ **********************
str filname = "yumes" /* !拡張子は付けないで
/*
dim char cr(1) = {&HA} /*改行マーク
/* X-BASICだと再生時に問題発生!
/* ぺけーBASIC=XB の使用を推奨
/* X-BASICで書き込んだデータを
/* X-BASICで再生する時は
/* EDか何かでセーブし直す必要有り
/*----------------------------------------
int x,y,lb,rb /*マウス
int mihari,a,b,c,d /*見張る
int count /*カウント
str lkasi[62] /*歌詞のアクセス
dim str kasi(32)[62] /*歌詞
str clkasi[6] /*データアクセス
dim str kasicount(32)[6] /*データ
int retu /*作成データ行
int lbbuf /*左ボタン押しっぱなし対策
int kasiretu /*次に表示する行
int pointretu /*表示する行
int fnum /*ファイル番号
char hensyu = 0 /*データ作成中フラグ
cls
width 96
mouse(4)
kasiload()
dataload()
/* =========メイン========================
m_play()
count = 0
repeat
locate 0,0
a = zm_work(1,7) /*これが一体なんなのか
b = zm_work(2,7) /*知らないのですが
c = zm_work(3,7) /*取り敢えず使ってみたりして
print using"#####";a;
print using"#####";b;
print using"#####";c;
/*****************************************
/*左からa/b/cの順に表示されるので *
/*ここをa/b/cのいずれかに書き換える *
/* ↓ ************************************
d = c
/*---データを見張る
/* 変化が有ればカウント
if mihari <> d then count = count +1
mihari = d
print using"#####";count
/*---データが空でなければ
if hensyu = 0 then{
if kasicount(pointretu) <> "" then{
kasiretu = atoi(kasicount(pointretu))
/*---カウントとデータが一致
if count = kasiretu then {
locate 6,pointretu+1
color 1
print kasi(pointretu)
color 3
pointretu = pointretu + 1
}
}
}
/*
msstat(x,y,lb,rb)
/*---(カウント)データ作成
makecount()
/*---演奏終了でループ抜ける
if m_stat() = 0 then break
/*---右ボタンでループ解除
until rb = -1
m_stop()
msbtn(0,0,1)
msbtn(0,1,1)
/*-------データ書き込み選択---------------
if hensyu = 1 then {
writedata()
}
/*----------------------------------------
mouse(0)
cls
end
/*=======================================
/*--------データ作成---------------------
func makecount()
/*---左ボタンが一旦放された後、再び押されたら
if lbbuf = 0 then{
if lb = -1 then {
/*---一色を替えてデータ表示
locate 0,retu+1
color 2
print using"#####";count;
print " ";kasi(retu)
locate 30,0
print"データ作成中 次の行[左] 中止[右]"
color 3
kasicount(retu) = str$(count)
retu = retu + 1
lbbuf = 1
hensyu = 1
}
}else{
if lb = 0 then lbbuf = 0
}
endfunc
/* --------歌詞読み込み------------------------
func kasiload()
error off
fnum = fopen(filname + ".doc","r")
locate 0,1
repeat
a = freads(lkasi,fnum)
kasi(count) = lkasi
count = count + 1
print " ";lkasi
until a = -1
fclose(fnum)
error on
endfunc
/* --------データ読み込み----------------------
func dataload()
locate 30,0
count = 0
error off
fnum = fopen(filname + ".kas","r")
if fnum = -1 then {
print "データ無し 作成=[左] 中止=[右]"
}else{
print "データ有り 作成=[左] 中止=[右]"
repeat
a = freads(clkasi,fnum)
kasicount(count) = clkasi
print kasicount(count)
count = count + 1
until a = -1
}
error on
endfunc
/* -------データ書き込み-----------------------
func writedata()
locate 30,0
print"書き込みますか? Y=[左] N=[右]"
for a = 0 to retu - 1
print using"#####";(atoi(kasicount(a)));
print " ";kasi(a)
next
/*---選択されるまで待つ
repeat
msstat(x,y,lb,rb)
until lb + rb <> 0
/*---左ボタンが押されたら
if lb = -1 then{
fnum = fopen(filname + ".kas","c")
for a = 0 to retu - 1
clkasi = kasicount(a)
fwrites(clkasi,fnum)
/*------------------
/*X-BASICだとうまく書き込めない
fwrite(cr,1,fnum)
next
fclose(fnum)
}
endfunc